Identifiers#
For privacy, it is best to minimise the amount of information that can be traced back to you.
Locale#
Using locales other than the default en_US.UTF-8 can help deanonymize the server owner.
You can check the currently set locale with the command:
locale
You should see something like this:
LANG=en_US.UTF-8
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=
If your LANG value is different, then you should change it:
sudo update-locale LANG=en_US.UTF-8
sudo localectl set-locale LANG=en_US.UTF-8
Username#
Usernames can deanonymize the server owner, so it's worth using more generic ones.
For example, user. Changing the username can be a bit tricky, so it's omitted here for now.
Hostname#
Similar to a username,
hostname can deanonymize the server owner, so it's worth using more generic ones.
For example, host:
sudo hostnamectl set-hostname host
Changes will take effect after reboot.
Before rebooting,
replace all occurrences of the old hostname with the new one in the /etc/hosts file.
Machine ID#
A unique Machine ID is stored in /etc/machine-id on systemd systems:
sudo -e /etc/machine-id
These should be edited to something generic, such as the Whonix ID:
b08dfa6083e7567a1921a715000001fb
Time synchronisation#
Time synchronisation is vital for anonymity and security. A wrong system clock can expose you to clock skew fingerprinting attacks or can be used to feed you outdated HTTPS certificates, bypassing certficate expiry or revocation.
The most popular time synchronisation method, NTP, is insecure, as it is unencrypted and unauthenticated, allowing an attacker to trivially intercept and modify requests. NTP also leaks your local system time in NTP timestamp format, which can be used for clock skew fingerprinting, as briefly mentioned before.
With NTPsec a 'secure' replacement is possible:
Install NTPsec itself:
sudo apt install ntpsec
Disable systemd-timesyncd:
sudo systemctl disable --now systemd-timesyncd
Enable NTP daemon:
sudo systemctl enable --now ntpd
Create ~/src directory:
mkdir -p ~/src
Go into it:
cd ~/src
Clone the repository from the AUR:
git clone https://aur.archlinux.org/ntpsec.git
Go into directory:
cd ntpsec
Build and Install NTPsec:
makepkg -sricfC
Enable NTP daemon:
sudo systemctl enable --now ntpd